ToolApprovalRequest

@Serializable
data class ToolApprovalRequest(val toolCallId: String, val toolName: String, val inputJson: JsonElement, val approvalId: String? = null, val signature: String? = null, val providerMetadata: Map<String, JsonElement>? = null) : StreamEvent

Tool requires approval. Per v6 RPC semantics, the loop ends after emitting this event — the corresponding ai.torad.aisdk.ContentPart.ToolApprovalRequest is added to the assistant message in the result, and the host calls Agent.generate again with a tool message containing ai.torad.aisdk.ContentPart.ToolApprovalResponse to resume.

Constructors

Link copied to clipboard
constructor(toolCallId: String, toolName: String, inputJson: JsonElement, approvalId: String? = null, signature: String? = null, providerMetadata: Map<String, JsonElement>? = null)

Properties

Link copied to clipboard

Approval-identity key, distinct from toolCallId per v6. Null defaults to toolCallId for the common case (single approval per call). Explicit when two approvals share a tool-call id and need separate correlation.

Link copied to clipboard
val inputJson: JsonElement
Link copied to clipboard
val StreamEvent.metadata: Map<String, JsonElement>?
Link copied to clipboard
val providerMetadata: Map<String, JsonElement>?
Link copied to clipboard

HMAC-SHA256 approval signature (v6.0.202) — set only when the agent holds an approval secret.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
inline fun <T> StreamEvent.providerMetadataAs(provider: String): T?
fun <T> StreamEvent.providerMetadataAs(provider: String, serializer: KSerializer<T>): T?